// 引入必要的依赖
const express = require('express');
const path = require('path');
const fs = require('fs');
const OpenAI = require('openai');
const axios = require('axios');

// 创建路由
const router = express.Router();

// 配置DeepSeek API
const openai = new OpenAI({
  baseURL: 'https://api.deepseek.com/v1',
  apiKey: 'sk-932a5a8da9724d9f9fc2217737d94660'
});

// 分析图片并生成标题和话题
async function analyzeImage(imageUrl, prompt) {
  try {
    // 调用DeepSeek API
    try {
      const response = await openai.chat.completions.create({
        model: 'deepseek-chat',
        messages: [
          {
            role: 'system',
            content: '你是一个图片分析助手，需要根据提供的图片内容和提示生成一个合适的标题和相关话题。标题要简洁明了，吸引人。请返回JSON格式，包含title(标题)和topic(话题名称)。'
          },
          {
            role: 'user',
            content: prompt
          }
        ],
        images: [
          {
            url: imageUrl,
            detail: 'high'
          }
        ],
        max_tokens: 1000,
        temperature: 0.7
      });

      // 不需要删除文件，因为使用的是URL而不是本地文件

      // 检查API响应结构
      if (response) {
        if (response.choices && response.choices.length > 0) {
          const firstChoice = response.choices[0];
          if (firstChoice.message && firstChoice.message.content) {
            try {
              let content = firstChoice.message.content;
              // 移除可能的代码块标记
              content = content.replace(/^```json\s*|\s*```$/g, '').trim();
              const result = JSON.parse(content);
              return result;
            } catch (error) {
              console.error('解析JSON失败:', error);
              return {
                error: '无法解析API响应'
              };
            }
          } else {
            console.error('API响应格式不正确:', response);
            return {
              error: 'API响应格式不正确'
            };
          }
        } else {
          console.error('API响应为空:', response);
          return {
            error: 'API响应为空'
          };
        }
      } else {
        console.error('API调用未返回响应');
        return {
          error: 'API调用未返回响应'
        };
      }
    } catch (apiError) {
      console.error('DeepSeek API调用错误:', apiError.response?.data || apiError.message);
      console.log();
      
      // 不需要删除文件，因为使用的是URL而不是本地文件
      return {
        error: apiError.message || 'DeepSeek API调用失败'
      };
    }
  } catch (error) {
    console.error('图片分析失败:', error);
    // 不需要删除文件，因为使用的是URL而不是本地文件
    return {
      error: error.message || '图片分析失败'
    };
  }
}



// AI一键补全路由
router.post('/complete', async (req, res) => {
  try {
    const { imageUrl, prompt, maxTokens = 100, temperature = 0.7 } = req.body;

    if (!imageUrl) {
      return res.status(400).json({
        success: false,
        message: '未提供图片URL'
      });
    }

    // 分析图片
    // 调用分析函数，指定返回格式
    const result = await analyzeImage(imageUrl, prompt || '为这张图片生成一个吸引人的标题和合适的话题。请严格按照{"title":"标题内容","topic":"话题内容"}格式返回，不要添加其他内容。');

    if (result.error) {
      return res.status(500).json({
        success: false,
        message: result.error
      });
    }

    res.json({
      success: true,
      title: result.title,
      topic: result.topic
    });
  } catch (error) {
    console.error('请求处理失败:', error);
    res.status(500).json({
      success: false,
      message: '服务器内部错误'
    });
  }
});

module.exports = router;